package Ejercicio2;

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
import java.util.Random;

public class ClienteChat implements Cliente {

	/**
	 * 
	 */
	private static final long serialVersionUID = -2313836400054235057L;
	private static final int NUM_MENSAJES = 100;

	@Override
	public void recibir(String mensaje) {
		System.out.println(mensaje);

	}
	
	public static void main(String[] args) {
        try {
        	String host = args.length > 0 ? args[0] : null;
        	ClienteChat obj = new ClienteChat();
        	Cliente stub = (Cliente) UnicastRemoteObject.exportObject(obj, 0);
        	
            Registry registry = LocateRegistry.getRegistry();
            registry.bind("Cliente " + new Random().nextInt(), stub);
            
            Servidor servidor = (Servidor) LocateRegistry.getRegistry(host).lookup("Servidor");
            int cliente = servidor.inscribirse(obj);
            System.err.println("Cliente preparado");
            long j = 0;
            Random r = new Random();
            while (true) {
            	j++;
	            for (int i = 0; i < NUM_MENSAJES; i++) {
	            	servidor.difundir("C" + cliente +": Mensaje automatico " + j + "." + i);
	            }
	            Thread.sleep(r.nextInt(1000));
            }
        } catch (Exception e) {
            System.err.println("Server exception: " + e.toString());
            e.printStackTrace();
        }
	}

}
